From: John Ralls Date: Tue, 29 Nov 2022 18:12:18 +0000 (-0800) Subject: [quartz]Use new (since 10.5) NSTrackingArea instead of older tracking rect. X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~2^2~9^2~2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=307945fbe498c42a71b62f83dcb722ba4c25690e;p=gtk%2B3.0.git [quartz]Use new (since 10.5) NSTrackingArea instead of older tracking rect. --- diff --git a/gdk/quartz/GdkQuartzView.c b/gdk/quartz/GdkQuartzView.c index f82c72a7b0..931d64c71b 100644 --- a/gdk/quartz/GdkQuartzView.c +++ b/gdk/quartz/GdkQuartzView.c @@ -266,6 +266,9 @@ if (trackingRect) { [self removeTrackingRect: trackingRect]; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500 + [(NSTrackingArea*)trackingRect release]; +#endif trackingRect = 0; } @@ -472,13 +475,19 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source, { GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (gdk_window->impl); NSRect rect; - +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500 + NSTrackingArea *trackingArea; +#endif + if (!impl || !impl->toplevel) return; if (trackingRect) { [self removeTrackingRect: trackingRect]; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500 + [(NSTrackingArea*)trackingRect release]; +#endif trackingRect = 0; } @@ -490,10 +499,19 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source, */ rect = [self bounds]; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500 + trackingArea = [[NSTrackingArea alloc] initWithRect: rect + options: NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingCursorUpdate | NSTrackingActiveInActiveApp | NSTrackingInVisibleRect | NSTrackingEnabledDuringMouseDrag + owner: self + userInfo: nil]; + [self addTrackingArea: trackingArea]; + trackingRect = (NSInteger)[trackingArea retain]; +#else trackingRect = [self addTrackingRect: rect owner: self userData: nil assumeInside: NO]; +#endif } -(void)viewDidMoveToWindow @@ -509,6 +527,9 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source, if (newWindow == nil && trackingRect) { [self removeTrackingRect: trackingRect]; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500 + [(NSTrackingArea*)trackingRect release]; +#endif trackingRect = 0; } }